package com.dy.design_pattern_study.singleton_pattern.dome1;

/**
 * @CreateBy zhangdingyi
 * @Date 2023-04-17
 * @Content 单例模式 -懒汉式
 */
public class Singleton {
    /*
        如何实现单例模式？
        这里的话，就是实现的方式
     */
    private static Singleton instance;

    //1.不能让外部创建对象的实例
    private Singleton() {
    }

    /**
     * 单例模式因为Singleton类封装它的唯一实例，这样它可以严格地控制客户怎样访问它以及何时访问它。
     * 简单地说就是对唯一实例的受控访问
     * @return
     */
    //2.公开一个方法让其他对象可以访问
    public static Singleton getSingleton() {
        //只能由自身对实例进行创建
        //先判断实例是否被创建
        if (instance == null) {
            //如果没有就进行创建
            instance = new Singleton();
        }
        //最后把实例进行返回
        return instance;
    }

}
